Azure App 등록 가이드
SDF 서비스에서 사용할 Azure 앱을 고객사 테넌트에 등록하는 절차입니다.
1. 개요
공통 앱을 사용하지 않는 경우, SDF 서비스에서 사용할 Azure 앱을 고객사 테넌트에 별도로 등록합니다.
앱 등록과 API 사용 권한 동의가 모두 완료된 후, 발급된 앱 ID와 클라이언트 암호를 소프트캠프 담당자에게 전달하면 서비스 설정에 반영됩니다.
클라이언트 암호는 생성 시점에만 확인할 수 있으며 이후 다시 조회할 수 없습니다. 전달 시에는 메일 등 평문 채널이 아닌 별도의 보안 채널을 이용해 주십시오.
2. 앱 등록
2.1 Azure Portal 로그인
Azure Portal(Azure Portal)에 관리자 계정으로 로그인합니다.
앱 등록 메뉴를 선택하고 새 등록 버튼을 통해 애플리케이션 등록 페이지로 이동합니다.


2.2 앱 등록 정보
| 항목 | 값 |
|---|---|
| 이름 | SDF |
| 계정 유형 | 다중 테넌트 |
등록 버튼을 클릭하여 애플리케이션을 등록합니다.

2.3 앱 ID 정보 확인
등록이 완료되면 앱 개요 화면에서 애플리케이션(클라이언트) ID 와 디렉터리(테넌트) ID 를 확인할 수 있습니다. 이후 단계에서 사용하므로 별도로 기록해 둡니다.

3. 클라이언트 암호 설정
3.1 Azure CLI 설치
서비스 인증 시 사용하는 암호를 설정하기 위해 Azure CLI를 설치합니다.
- 참고: Windows에 Azure CLI 설치 (Microsoft 공식 문서)
3.2 Azure CLI 로그인 (PowerShell)
PowerShell을 관리자 권한 으로 실행한 후 Azure 관리자 계정 으로 로그인합니다. 해당 테넌트의 구독이 여러 개일 경우 구독을 적절히 선택합니다.
az login
3.3 새 클라이언트 암호 생성
새로운 클라이언트 암호를 만료 기간과 함께 설정합니다. 만료 기간 미설정 시 생성 시간 기준 1년으로 설정됩니다.
az ad app credential reset --id {appId} --append --end-date {end-date}
| 파라미터 | 설명 |
|---|---|
| appId | 앱 아이디 |
| append | 기존 암호를 유지하면서 신규 암호를 생성합니다. 이 파라미터를 제거하면 기존 암호가 삭제됩니다. |
| end-date | 암호 만료 시간 (형식: 'YYYY-MM-DD') 예시: '2028-01-22' |
3.4 암호 값 저장
클라이언트 암호 생성 후 출력되는 password 값을 확인하고 별도로 저장합니다.
{
"appId": "{appId}",
"password": "{생성된 클라이언트 암호}", // appSecret
"tenant": "{tenantId}"
}
3.5 암호 생성 확인
암호가 정상적으로 생성되었는지 확인합니다.
az ad app credential list --id {appId}
PS C:\> az ad app credential list --id {appId}
[
{
"customKeyIdentifier": null,
"displayName": null,
"endDateTime": "2028-01-22T00:00:00Z",
"hint": "***",
"keyId": "{keyId}",
"secretText": null,
"startDateTime": "2026-01-22T05:52:37Z"
}
]
3.6 클라이언트 암호 생성 전체 실행 과정 예시
PS C:\> az login
Select the account you want to log in with.
Retrieving tenants and subscriptions for the selection...
[Tenant and subscription selection]
No Subscription name Subscription ID Tenant
----- ------------------- ----------------- ----------------
[1] * {구독 이름} {구독 ID} {테넌트 이름}
[2] {구독 이름} {구독 ID} {테넌트 이름}
The default is marked with an *.
Select a subscription and tenant (Type a number or Enter for no changes): 1
PS C:\> az ad app credential reset --id {appId} --append --end-date '2028-01-22'
The output includes credentials that you must protect. Be sure that you do not include these credentials in your code or check the credentials into your source control.
{
"appId": "{appId}",
"password": "{생성된 클라이언트 암호}",
"tenant": "{tenantId}"
}
PS C:\> az ad app credential list --id {appId}
[
{
"customKeyIdentifier": null,
"displayName": null,
"endDateTime": "2028-01-22T00:00:00Z",
"hint": "***",
"keyId": "{keyId}",
"secretText": null,
"startDateTime": "2026-01-22T05:52:37Z"
}
]
3.7 클라이언트 암호 생성 확인
Azure Portal의 앱 등록 화면에서 인증서 및 비밀 메뉴로 이동하면 생성된 클라이언트 암호가 목록에 표시됩니다.

4. API 사용 권한 추가
4.1 추가해야 하는 권한 리스트
Microsoft Graph
| API/권한 이름 | 유형 | 관리자 동의가 필요함 | 권한 설명 |
|---|---|---|---|
| InformationProtectionPolicy.Read.All | 애플리케이션 | 예 | AIP label의 보호 템플릿 ID를 얻어옴 |


Microsoft Information Protection Sync Service
| API/권한 이름 | 유형 | 관리자 동의가 필요함 | 권한 설명 |
|---|---|---|---|
| UnifiedPolicy.Tenant.Read | 애플리케이션 | 예 | 사용자가 접근 권한을 가진 모든 통합 정책을 읽음 |


Azure Rights Management Services
| API/권한 이름 | 유형 | 관리자 동의가 필요함 | 권한 설명 |
|---|---|---|---|
| Content.DelegatedReader | 애플리케이션 | 예 | 사용자를 대신하여 보호된 콘텐츠를 읽음 |
| Content.DelegatedWriter | 애플리케이션 | 예 | 사용자를 대신하여 보호된 콘텐츠를 생성함 |
| Content.SuperUser | 애플리케이션 | 예 | 임차인의 모든 보호된 콘텐츠를 읽음 |
| Content.Writer | 애플리케이션 | 예 | 보호된 콘텐츠를 생성함 |


4.2 관리자 동의 허용
API 사용 권한을 추가하고 관리자 동의 허용 을 수행해야 합니다.

5. 전달 항목
아래 항목을 소프트캠프 담당자에게 전달합니다.
| 항목 | 확인 위치 |
|---|---|
| 애플리케이션(클라이언트) ID | 앱 개요 화면 |
| 디렉터리(테넌트) ID | 앱 개요 화면 |
| 클라이언트 암호 | 3.4 단계 출력값 |
| 암호 만료일 | 3.3 단계에서 지정한 end-date |